home *** CD-ROM | disk | FTP | other *** search
/ MIDICraft's MIDINET CD-ROM / MIDICraft's MIDINET CD-ROM.iso / DOSUTILS / MIDIPROG.DOC < prev    next >
Text File  |  1997-03-29  |  9KB  |  208 lines

  1.         ******************************
  2.             MIDIPROG v1.0
  3.     
  4.           show used midi programs (GM, XG, GS)
  5.               by Guenter Nagler 
  6.                 1997
  7.           (gnagler@ihm.tu-graz.ac.at)
  8.         ******************************
  9.  
  10. [0] FEATURES
  11.     + reads a binary midi file
  12.     + shows all programs used in the song
  13.     + lookup in GS, XG drum and program tables
  14.  
  15. [1] BACKGROUND
  16. Currently GS and XG midi standard offer access to a huge number of 
  17. sounds for midi songs. The tables are rather complex for manual lookup.
  18. This program should help to automize this task.
  19. It collects all necessary parameters and shows a program name that should
  20. be produced when correct midi mode is used.
  21.  
  22. The table of programs and program names were taken from the manual to my
  23. Yamaha DB50XG wavetable daughterboard which is GM, XG and GS compatible.
  24. All program names are truncated to max. 8 characters.
  25.  
  26. [2] FILES DESCRIPTION
  27.  
  28. MIDIPROG.EXE.........lookup program
  29. MIDIPROG.DOC.........this file, showing usage of MIDIPROG.EXE
  30. MIDIIO.HPP..........header file for a c++ midi parser
  31. MIDIIO.CPP..........source code for a c++ midi parser
  32. MIDIPROG.CPP.........c++ source code for modifying midi files
  33. PROGNAME.CPP......... These file contains the program tables for GM, GS and XG
  34. PROGNAME.HPP.........header file for access to program tables
  35. MIDIPROG.MAK.........make file for project
  36. MIDIPROG.CFG.........compiler options for make
  37. MIDIPROG.PRJ.........compiler project for Borland (tm) c++ compilers
  38. only MIDIPROG.EXE is required to run program
  39.  
  40. [3] COPYRIGHT
  41.  
  42. MIDIPROG (c) 1997 was created by Guenter Nagler.
  43.  
  44. MIDIPROG is free and may be used as you wish with this one exception:
  45.  
  46.     You may NOT charge any fee or derive any profit for distribution
  47.     of MIDIPROG.  Thus, you may NOT sell or bundle MIDIPROG with any
  48.     product in a retail environment (shareware disk distribution, CD-ROM,
  49.     etc.) without permission of the author.
  50.  
  51. You may give MIDIPROG to your friends, upload it to a BBS, or ftp it to
  52. another internet site, as long as you don't charge anything for it.
  53.  
  54. [4] DISCLAIMER
  55.  
  56. MIDIPROG was designed to handle 100% compatible midi files.
  57. Its parser was tested with 600 different midi files but I can not say if 
  58. each 100% midi compatible midi file can be correctly converted.
  59. So I give no guarantees of the results, especially with non 100% 
  60. compatible midi files.
  61. If you find a midi file that you think to be 100% compatible midi
  62. that is not correctly converted, please send a sample file to 
  63. gnagler@ihm.tu-graz.ac.at . 
  64.  
  65. Use MIDIPROG at your own risk.  Anything you do with MIDIPROG is your
  66. responsibility, and not the author's.  Any damage caused to any person,
  67. computer, software, hardware, company, or business by running MIDIPROG
  68. is your responsibility, and the author will not be liable.
  69.  
  70. If you don't understand these terms, or are not sure of something, or
  71. are afraid something bad might come of using MIDIPROG, don't  use  it!
  72. You are here forewarned.
  73.  
  74. [5] INSTALLATION
  75.  
  76. [MSDOS]
  77. Simply copy MIDIPROG.EXE in a directory that is in your path.
  78. When you start the program without arguments
  79.  
  80. [UNIX]
  81. compile sources with your C++ compiler (e.g. GNU Compiler g++):
  82.  
  83. g++ -o midiprog midiprog.cpp midiio.cpp progname.cpp
  84.  
  85. and run program
  86.  
  87. $ midiprog
  88.  
  89. C:\> MIDIPROG
  90.  
  91. you should get the usage text (see next section)
  92.  
  93. [6] USAGE
  94.  
  95. usage: MIDIPROG [-gm][-gs][-xg] file.mid 
  96.  
  97. The parts in brackets [...] are optional.
  98.  
  99. The program MIDIPROG allows following option:
  100. -version    get program version
  101. -gm        assume GM mode
  102. -gs        assume GS mode
  103. -xg        assume XG mode
  104.  
  105. The midi mode can be changed inside midi file with one of following sysex commands:
  106.  
  107. GM Reset:  F0 05 7E 7F 09 01 F7
  108. GS Reset:  F0 0A 41 10 42 12 40 00 7F 00 41 F7
  109. XG Reset:  F0 08 43 10 4C 00 00 7E 00 F7
  110.       
  111. [8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
  112.  
  113.          WWW:    http://hgiicm.tu-graz.ac.at/Cpub
  114.           contains all my dos/unix midi programs
  115.          EMAIL:  gnagler@ihm.tu-graz.ac.at
  116.  
  117. [9] USE
  118.  
  119. c> midiprog vodoochi.mid
  120. mode=GS channel=12 program=78 hbank=00 lbank=00 name=FretNoiz
  121. mode=GS channel=2  program=1D hbank=00 lbank=00 name=Ovrdrive
  122. mode=GS channel=4  program=1B hbank=00 lbank=00 name=CleanGtr
  123. mode=GS channel=8  program=1D hbank=00 lbank=00 name=Ovrdrive
  124. mode=GS channel=10 program=00 hbank=00 lbank=00 name=Standard
  125. mode=GS channel=9  program=77 hbank=00 lbank=00 name=RevCymbl
  126. mode=GS channel=7  program=1D hbank=00 lbank=00 name=Ovrdrive
  127. mode=GS channel=1  program=1D hbank=00 lbank=00 name=Ovrdrive
  128. mode=GS channel=6  program=1F hbank=00 lbank=00 name=Harmnics
  129. mode=GS channel=3  program=21 hbank=00 lbank=00 name=FngrBass
  130. mode=GS channel=5  program=1D hbank=00 lbank=00 name=Ovrdrive
  131.  
  132. Hint: The program changes are sorted by time of first note that is 
  133. played with this sound.
  134.  
  135. c> midiprog demoxg.mid
  136. mode=XG channel=1  program=23 hbank=40 lbank=00 name=Stream
  137. mode=XG channel=2  program=5F hbank=00 lbank=40 name=PolarPad
  138. mode=XG channel=4  program=21 hbank=40 lbank=00 name=Thunder
  139. mode=XG channel=3  program=65 hbank=00 lbank=40 name=GobSyn
  140. mode=XG channel=9  program=64 hbank=40 lbank=00 name=FootStep
  141. mode=XG channel=10 program=08 hbank=7F lbank=00 name=Room
  142. mode=XG channel=6  program=50 hbank=40 lbank=00 name=CarEngin
  143. mode=XG channel=8  program=63 hbank=40 lbank=00 name=Heart
  144. mode=XG channel=5  program=37 hbank=40 lbank=00 name=Maou
  145. mode=XG channel=5  program=52 hbank=40 lbank=00 name=CarPass
  146. mode=XG channel=11 program=01 hbank=7E lbank=00 name=SFX2
  147. mode=XG channel=5  program=51 hbank=40 lbank=00 name=CarStop
  148. mode=XG channel=7  program=61 hbank=40 lbank=00 name=Scream
  149. mode=XG channel=7  program=53 hbank=40 lbank=00 name=CarCrash
  150. mode=XG channel=6  program=51 hbank=40 lbank=00 name=CarStop
  151. mode=XG channel=6  program=53 hbank=40 lbank=00 name=CarCrash
  152. mode=XG channel=6  program=52 hbank=40 lbank=00 name=CarPass
  153. mode=XG channel=8  program=64 hbank=40 lbank=00 name=FootStep
  154. mode=XG channel=8  program=41 hbank=40 lbank=00 name=DoorSqek
  155. mode=XG channel=8  program=42 hbank=40 lbank=00 name=DoorSlam
  156. mode=XG channel=8  program=60 hbank=40 lbank=00 name=Laughing
  157.  
  158. c> midiprog fadetogr.mid
  159. mode=GM channel=1  program=4F hbank=00 lbank=00 name=Ocarina
  160. mode=GM channel=2  program=51 hbank=00 lbank=00 name=Saw   Ld
  161. mode=GM channel=10 program=19 hbank=00 lbank=00 name=GM Drums
  162. mode=GM channel=1  program=50 hbank=00 lbank=00 name=SquareLd
  163. mode=GM channel=4  program=31 hbank=00 lbank=00 name=Ensmble2
  164. mode=GM channel=11 program=00 hbank=7F lbank=00 name=GrandPno
  165. mode=GM channel=7  program=3E hbank=00 lbank=00 name=SynBras1
  166. mode=GM channel=3  program=3E hbank=00 lbank=00 name=SynBras1
  167. mode=GM channel=5  program=08 hbank=00 lbank=00 name=Celesta
  168. mode=GM channel=6  program=08 hbank=00 lbank=00 name=Celesta
  169. mode=GM channel=12 program=18 hbank=7F lbank=00 name=NylonGtr
  170. mode=GM channel=8  program=38 hbank=00 lbank=00 name=Trumpet
  171.  
  172. Hint: if no midi mode is specified and midi file does not contain a 
  173. midi command to set a certain mode, then GM is assumed. In GM mode
  174. only channel 10 is assumed to contain drums.
  175.  
  176. c> midiprog -gs fadetogr.mid
  177. mode=GS channel=1  program=4F hbank=00 lbank=00 name=Ocarina
  178. mode=GS channel=2  program=51 hbank=00 lbank=00 name=Saw   Ld
  179. mode=GS channel=10 program=19 hbank=00 lbank=00 name=Analog
  180. mode=GS channel=1  program=50 hbank=00 lbank=00 name=SquareLd
  181. mode=GS channel=4  program=31 hbank=00 lbank=00 name=Ensmble2
  182. mode=GS channel=11 program=00 hbank=7F lbank=00 name=a.piano1
  183. mode=GS channel=7  program=3E hbank=00 lbank=00 name=SynBras1
  184. mode=GS channel=3  program=3E hbank=00 lbank=00 name=SynBras1
  185. mode=GS channel=5  program=08 hbank=00 lbank=00 name=Celesta
  186. mode=GS channel=6  program=08 hbank=00 lbank=00 name=Celesta
  187. mode=GS channel=12 program=18 hbank=7F lbank=00 name=synbras1
  188. mode=GS channel=8  program=38 hbank=00 lbank=00 name=Trumpet
  189.  
  190. Hint:  midiprog can be forced to start in GS mode by option -gs.
  191.   GS assumes drums to be on channel 10.
  192.   
  193. c> midiprog -xg fadetogr.mid
  194. mode=XG channel=1  program=4F hbank=00 lbank=00 name=Ocarina
  195. mode=XG channel=2  program=51 hbank=00 lbank=00 name=Saw   Ld
  196. mode=XG channel=10 program=19 hbank=00 lbank=00 name=GM Drums
  197. mode=XG channel=1  program=50 hbank=00 lbank=00 name=SquareLd
  198. mode=XG channel=4  program=31 hbank=00 lbank=00 name=Ensmble2
  199. mode=XG channel=11 program=00 hbank=7F lbank=00 name=Standard
  200. mode=XG channel=7  program=3E hbank=00 lbank=00 name=SynBras1
  201. mode=XG channel=3  program=3E hbank=00 lbank=00 name=SynBras1
  202. mode=XG channel=5  program=08 hbank=00 lbank=00 name=Celesta
  203. mode=XG channel=6  program=08 hbank=00 lbank=00 name=Celesta
  204. mode=XG channel=12 program=18 hbank=7F lbank=00 name=Electro
  205. mode=XG channel=8  program=38 hbank=00 lbank=00 name=Trumpet
  206.  
  207. Hint: xg drums depend on hbank value and can be on any channel.
  208.